/*
算法题：字符串重命名。重复的字符串需要添加序号
举例 ，输入["ab","c","ab","c","a","d"]，
输出["ab1","c1","ab2","c2","a","d"]，
输出不可以改变原有顺序，不重复的字符串不动
*/
const arr = ["ab","c","ab","c","a","d"]
// value应该存索引而不是数量！
function stringRename(arr) {
    let map = new Map()
    for (let i = 0; i < arr.length; i++) {
        if (!map.has(arr[i])) {
            map.set(arr[i], i)
        }
        // 有这个字符 则需要直接修改数组了 这里还要判断这是第几个了
        else {
            // 此时的状态是第一和第二个
            if (arr[map.get(arr[i])].length === arr[i].length) {
                arr[map.get(arr[i])] = arr[i] + '1'
                arr[i] = arr[i] + '2'
                // 更新索引位置
                map.set(map.get(arr[i]), i)
            }
            // 当前arr[i]没有序号而前面的都加了序号 故长度不一样
            else {
                arr[i] = arr[i] + arr[map.get(arr[i])][arr[map.get(arr[i])].length - 1]
            }
        }
    }
    return arr
}

console.log(stringRename(arr));
